<!DOCTYPE html>
<html lang="en">
<head>
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
            
        </style>
    </head>
    <body>
        
    </body>
    <script>
        // 1. 必须遵守js中对象的基本语法：数组，多个数据；对象，键值对；非NaN数值和布尔亦可
        // 2. 如果是键值对语法，所有的键必须添加双引号
        // 3. 不允许出现函数，undefined，NaN
        // 4. 不允许出现没有意义的逗号
        // 5. 一个json数据必须是单引号或反引号字符（因为对象的键使用了双引号）（除数值和布尔数据）
    
        // json转对象，必须要遵守json的规则
    
        // var json = "hello";       // 1
        // var json = "{age:'admin'}";       // 2
        // var json = "{'name':'admin'}";       // 2
        // var json = `{"name":"admin",}`;       // 4
        // var json = `{"name":"admin",show:"undefined"}`;       // 2
        // var json = `{"name":"admin","show":undefined}`;       // 3
        // var json = {"name":"admin"};        // 5
        // var json = ["hello"];                // 1
        // var json = "['hello']";              // 5
        // var json = '["hello",]';             // 4
        // var json = '["hello",function(){}]';     // 3
        // var json = '["hello",NaN]';              // 3
        // var json = '["hello",undefined]';        // 3
    
        // console.log( JSON.parse(json) );
    
        // 以上都是错误的json
        // 以下都是正确的json
    
        // var json = `[{
        //     "name":"admin",
        //     "age":18,
        //     "isGoodPeople":true,
        //     "hobby": ["唱歌","跳舞"]
        // }]`;
    
        // console.log( JSON.parse(json) );
    
    
        // =======
    
        // 对象转json，必须遵守对象的语法
    
        const obj = {
            name:"admin",
            age:18,
            show:function(){},
            msg:undefined, 
            a:NaN,
            b:null,
            c:true,
            d:{},
            e:[],
        }
        console.log( JSON.stringify(obj) );
    
        
    </script>
    </html>